var $dataInfo = $('#courseJoinTable');

//防止表头与表格不对齐
$(window).resize(function () {
    $dataInfo.bootstrapTable('resetView');
});


$(function () {

    dataInfoInit();

    $('#customerId').selectpicker();

});



function productSel(productCode){
    console.log(productCode)
    $.ajax({
        type: 'get',
        dataType: "json",
        url: '/customerController/selectCustomersByProductCode?productCode='+productCode,
        cache : false,
        async : false,
        success: (function (data) {
            if (data.code == "000000") {
                var html = '<option value="">请选择</option>';
                $.each(data.data, function(n, value) {
                    html += "<option value=" + value.customerId + ">" +  value.customerName + "</option>";
                });
                $("#customerId").html(html);
            } else {
                alert("请求失败");
            }
        }),
        error: (function (res) {
            alert("请求失败");
        })
    });
}

/**
 * 课程报名列表
 */
function dataInfoInit() {
    //先销毁表格
    $dataInfo.bootstrapTable('destroy');
    $dataInfo.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/courseArrange/selectRegistList',//请求地址
        method: 'get',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'courseArrangeId',
        idField: 'courseArrangeId',
        pageSize: globalPageSize,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: globalPageList,//可供选择的每页的行数
        // fixedColumns: true,     // 冻结列
        // fixedNumber: 4,         // 左侧固定列
        // fixedRightNumber: 1,    // 右侧固定列
        queryParams: queryParams,//查询参数
        columns: [
            {title: '主键', field: 'courseRegistrationId', visible: false},
            {title: '课程Id', field: 'courseId', visible: false},
            {title: '产品编码', field: 'productCode', visible: false},
            {title: '是否划扣', field: 'isConsume', visible: false},
            {title: '序号', field: 'index', align: 'center', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '课程名称', field: 'courseName', align: 'left', valign: 'middle'},
            {title: '课程状态', field: 'courseStatus', align: 'left', valign: 'middle'},
            {title: '产品号', field: 'productNum', align: 'left', valign: 'middle', visible: false},
            {title: '报名开始日期', field: 'enterStartTm', align: 'left', width: '80', valign: 'middle', visible: false},
            {title: '报名截止日期', field: 'enterEndTm', align: 'left', width: '80', valign: 'middle', visible: false},
            {title: '开课日期', field: 'courseStartTm', align: 'left', width: '80', valign: 'middle'},
            {title: '参课地点', field: 'coursePlace', align: 'left', valign: 'middle'},
            {title: '所属客户', field: 'customerName', align: 'left', valign: 'middle'},
            // {title: '所属人', field: 'userName', align: 'left', valign: 'middle'},
            {title: '参课人', field: 'applyName', align: 'left', valign: 'middle'},
            {title: '联系方式', field: 'contactWay', align: 'left', valign: 'middle', formatter: contactWayFormat},
            {title: '报名状态', field: 'registStatus', align: 'left', valign: 'middle'},
            {title: '备注', field: 'remark', visible: false},
            {title: '操作', field: 'operate', align: 'right', formatter: genderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * --列表序列号
 */
function indexFormat(value, row, index) {
    return index + 1;
}


/**
 * 自定义操作列内容
 */
function genderOpt(value, row, index) {
    var html = '<button type="button" class="btn btn-default" onclick="courseRegistCancel(\'' + row.courseRegistrationId + '\',\'' + row.registStatus + '\',\'' + row.enterEndTm + '\',\'' + row.courseId + '\',\'' + row.isConsume + '\')"><i class="mdi mdi-eye"></i>取消</button>';
    html += '<button type="button" class="btn btn-default" onclick="editCourseRegist(\'' + row.courseRegistrationId + '\' , \'' + row.courseName + '\', \'' + row.courseStatus + '\', \'' + row.createTm + '\', \'' + row.coursePlace + '\', \'' + row.customerName + '\', \'' + row.applyName + '\', \'' + row.contactWay + '\', \'' + row.remark + '\' , \'' + row.customerId + '\', \'' + row.productCode + '\')"><i class="mdi mdi-pencil"></i>编辑</button>';
    html += '<button type="button" class="btn btn-default" onclick="checkRemark(\'' + row.remark + '\')"><i class="mdi mdi-pencil"></i>查看备注</button>';
    return html;
}


/**
 * 编辑
 * @param courseRegistrationId
 */
var getCourseRegistrationId;
function editCourseRegist(courseRegistrationId,courseName,courseStatus,createTm,coursePlace,customerName,applyName,contactWay,remark,id,productCode) {
    getCourseRegistrationId = courseRegistrationId
    $('#courseName').text(courseName);
    $('#courseTime').text(courseStatus);
    $('#courseAddress').text(dateFormat(Number(createTm)));
    productSel(productCode)
    $("#customerId").selectpicker('val',id);
    $("#customerId").selectpicker('refresh');
    $('#customerId').selectpicker('render');
    $('.usercourse').val(applyName)
    $('.phone').val(contactWay)
    $('#exampleFormControlTextarea1').val(remark)
    $('#registEditModal').modal('show')
}

function submit(){
    if(  $('.usercourse').val() != '' && $('.phone').val() != ''){
        $.ajax({
            url: '/courseArrange/updateCourseRegist',
            type: 'POST',
            dataType: "json",
            contentType: "application/json;charset=utf-8",
            data: JSON.stringify({
                courseRegistrationId : getCourseRegistrationId,
                customerId : $("#customerId").val(),
                applyName:$('.usercourse').val(),
                contactWay:$('.phone').val(),
                remark:$('#exampleFormControlTextarea1').val(),
            }),
            success: (function (data) {
                if (data.code == "000000") {
                    $.alert("操作成功！");
                    $('#registEditModal').modal('hide')
                    dataInfoInit();

                } else {
                    $.alert("操作失败");
                }
            }),
            error: (function () {
                $.alert("失败");
            })
        });
    }else{
        $.alert('参课人或手机号不能为空')
    }

}

$('.phone').on('blur',function(){
    if(!isMobile($('.phone').val())){
        $.alert('请输入正确是手机号码')
    }
})

function isMobile(inputString) {
    var partten = /^1[34578]\d{9}$/;
    var fl = false;
    if (partten.test(inputString)) {
        return true;
    }
    else {
        return false;
    }
}

/**
 * 拼接查询条件参数
 */
function queryParams(params) {
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式
    params.bs = '1';  //0管理端 1用户端
    return params;
}

/**
 * 功能：隐藏电话号码中间四位
 * */
function transTelNumber(number) {
    return number.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
}



/**
 * 查看备注
 * @param courseRegistrationId
 */
function checkRemark(remark) {
    $('#remarkInfo').text(remark);
    $('#checkRemarkModal').modal('show')
}


/**
 * 时间转换
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function dateFormat(value, row, index) {
    if (value != null) {
        var date = new Date(value);
        var month = date.getMonth() + 1;
        var tian = date.getDate();
        if (month >= 1 && month <= 9) {
            month = "0" + month;
        }
        if (tian >= 1 && tian <= 9) {
            tian = "0" + tian;
        }
        return date.getFullYear() + '-' + month + '-' + tian;
    }
}


/**
 * 联系方式中间四位加星号
 * @param value
 * @param row
 * @param index
 */
function contactWayFormat(value, row, index) {
    // 手机号码中间四位替换为 *
    var contact = transTelNumber(value);
    return contact;
}


/**
 * 取消报名-用户端
 *
 */
function courseRegistCancel(courseRegistrationId,registStatus,enterEndTm,courseId,isConsume) {

    var nowtimeYMDHM = new Date().FormatFMT("yyyy-MM-dd hh:mm");
    if (enterEndTm < nowtimeYMDHM) {
        $.alert("报名已结束不可取消!");
        return;
    }

    if('已取消' == registStatus){
        $.alert("不可重复取消！");
        return;
    }

    $.confirm({
        title: '提示',
        content: '<strong>\n' +
            '<p>确定要删除这一条记录吗?</p>\n' +
            '</strong>',
        icon: 'glyphicon glyphicon-question-sign',
        buttons: {
            ok: {
                text: '确定',
                btnClass: 'btn-primary',
                action: function () {
                    var auditCancelData={
                        "registId": courseRegistrationId,
                        "isConsume": isConsume
                    }

                    $.ajax({
                        url: '/courseArrange/auditCancel',
                        type: 'POST',
                        dataType: "json",
                        contentType: "application/json;charset=utf-8",
                        data: JSON.stringify(auditCancelData),
                        success: (function (data) {
                            if (data.code == "000000") {
                                $.alert("操作成功！");
                                dataInfoInit();
                            } else {
                                $.alert("操作失败");
                            }
                        }),
                        error: (function () {
                            $.alert("失败");
                        })
                    });
                }
            },
            cancel: {
                text: '取消',
                btnClass: 'btn-default',
                action: function () {

                }
            }
        }
    });
}

